package com.itheima.work1121;

import java.io.File;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;
//需求:
// 让用户输入一个特定的路径,然后输入要查找的文件名称,
// 根据指定名称检索特定路径下的所有文件,如果文件名称包含输入的名称,
// 则打印文件的名称 以及对应的绝对路径 和 文件大小
public class fountFile {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个文件路径");
        String path = sc.next();

        System.out.println("请输入需要查找的文件名称");
        String name = sc.next();
        fonudfile(path, name);

    }
public static void fonudfile(String path, String name) {
    Path source = Paths.get(path);
    try(DirectoryStream<Path> stream = Files.newDirectoryStream(source)){
        for (Path path1 : stream) {
            if(Files.isDirectory(path1)){
                fonudfile(path1.toString(),name);
            }else {
                String FileName = path1.getFileName().toString();
                if (FileName.contains(name)){
                    Path absolutePath = path1.toAbsolutePath();
                    long fileSize = Files.size(path1);
                    // 打印结果
                    System.out.println("文件名: " + FileName);
                    System.out.println("绝对路径: " + absolutePath);
                    System.out.println("文件大小: " + fileSize + " 字节");
                    System.out.println();
                }
            }
        }
    } catch (IOException e) {
        System.out.println("发生错误" + e.getMessage());
//        throw new RuntimeException(e);
    }
}
}
